1

NPM酷库,每天两分钟,了解一个流行NPM库。

昨天,我们了解的Node.js中数据流的处理,并使用through快速创建双向流,今天,我们继续讨论数据流。

我们昨天说到,使用数据流,可以分批读取数据到内存,而不用将文件一次性读取到内存。比如一个非常大文本文件,每一行是一条数据,我们可以每次读取一行,进行处理。

fs.createReadStream(file)
  .on('data', function (chunk) {
    //...
  });

上述代码中,每次流对象的data事件都会传递一个数据块chunk,但是遗憾的是,每个chunk并不是一行,也不是完整的多行,某一行有可能会被分开到两个chunk中,分两次返回,所以我们就需要多做很多额外的工作来处理。

split

split 能够快速实现对流数据块的处理,每一次精确返回一行完整的数据:

fs.createReadStream(file)
  .pipe(split())
  .on('data', function (chunk) {
    //...
  });

参考资料

https://github.com/dominictar...


脉冲云_梁兴臣
616 声望194 粉丝

脉冲云CTO,JS全栈开发,DevOps实施,开发体验优化,开发效率提升